Commonly assigned U.S. patent application Ser. No. 09/283,222, now U.S. Pat. No. 6,336,172, K. F. Day III et al., is incorporated for its showing of a data storage library system for storing and tracking multiple copies of data in system data storage libraries.
This invention relates to data storage systems having at least one data storage device with a peripheral interface coupled to a plurality of processing units, and, more particularly, to providing communication between the processing units.
Data processing systems comprising at least one host typically require a large amount of data storage. If the data, typically stored as a data volume, is not immediately required by the hosts, for example, if the data volume is infrequently accessed, the storage of the data volume may be on removable rewritable data storage media, such as magnetic tape or optical disk, and the data volumes may be written and or read by means of a data storage drive.
The data storage drive is typically coupled to the host, or processing unit, by means of a peripheral interface in which commands are directed only from the processing unit to the data storage drive, and the data storage drive responds to those commands, performing the commanded functions. No commands can be sent by the data storage drive to the coupled processing unit. Typically, the commands are performed by a device controller.
Data processing systems having multiple hosts require larger amounts of data storage than can be efficiently handled by single data storage drives.
Data storage libraries typically provide efficient access to large quantities of data volumes stored in removable data storage media, the media stored in storage shelves which are accessed by robots under the control of robot controllers. Due to the large amount of stored data, typically, a plurality of hosts make use of the same data storage library, and a plurality of data storage drives are included in the library to allow access by the hosts. A library manager, which may comprise the same processor as the robot controller, typically tracks each data volume and the data storage media on which it is stored, and tracks the storage shelf location of each data storage media.
Herein, a library manager, either with or without the robot controller, is defined as a xe2x80x9ccontrollerxe2x80x9d for the data storage library, as is the xe2x80x9ccontrollerxe2x80x9d for a data storage device as discussed above.
An example of a data storage library system for redundantly storing and accessing data volumes stored on removable data storage media in a plurality of data storage libraries is described in the incorporated coassigned K. F. Day III et al. application, hereinafter, Day et al. application. The library controller of each library provides an updatable synchronization token directly associated with each data volume. A plurality of directors are provided, each separate from and coupled to the hosts and each separate from and coupled to each data storage library. Each director responds to separate, partitioned data storage drive addresses addressed by the hosts. The responding director supplies each data volume supplied from a host to all of the data storage libraries, and updates each synchronization token directly associated with the supplied data volume. Thus, the directors store duplicate copies of the data volume in the data storage libraries without involvement by the host. The currency of the data volumes are each tracked by means of the directly associated synchronization token, and the synchronization token is not tracked by the host.
In the instance where one copy of the data volume is down level and the corresponding synchronization token has not been updated, the responding director may identify the down level data volume to the other directors, so that the erroneous down level information is not transferred to hosts. The responding director may subsequently update the data volume and the corresponding synchronization token.
A specialized communication system may be installed between the directors, but would require a significant upgrade to the directors and their interfaces, and, in order to provide a level of redundancy, would require a fully redundant communication system.
However, such communication systems are likely to be highly costly, as would the upgraded directors.
It is an object of the present invention to provide communication between processing units, such as directors, conveniently and at a low cost.
Disclosed are a system and method, employing a data storage device, for providing communication between a plurality of processing units which are respectively unconnected to each other, with the processing units each separately coupled to the data storage device. The data storage device is coupled to the processing units by means of peripheral interfaces. The data storage device comprises a plurality of storage interfaces, each coupled to one of the processing units for receiving commands and signals sent from each of the processing units and for supplying signals to each of the processing units, and a buffer. A controller coupled to the storage interfaces and to the buffer, recognizes xe2x80x9cbroadcastxe2x80x9d commands and any message accompanying the xe2x80x9cbroadcastxe2x80x9d commands, and recognizes xe2x80x9cread messagexe2x80x9d commands, the commands and messages received from the processing units at the storage interfaces. The controller stores the message accompanying the xe2x80x9cbroadcastxe2x80x9d command in the buffer, and the controller forwards, at the storage interfaces, a xe2x80x9cmessage readyxe2x80x9d signal to at least one of the processing units. The processing units then send a xe2x80x9cread messagexe2x80x9d command to the data storage device. The controller responds to a xe2x80x9cread messagexe2x80x9d command at one of the storage interfaces, supplying the message stored in the buffer at the storage interface to the sending processing unit.
The xe2x80x9cbroadcastxe2x80x9d command may be additionally accompanied by at least one address designating at least one of the processing units. The controller forwards the xe2x80x9cmessage readyxe2x80x9d signal to only the processing unit or units designated by the addresses.
The message accompanying the received xe2x80x9cbroadcastxe2x80x9d command comprises commands and/or signals and may comprise a unique identifier of the message. Upon the message being supplied to a plurality of data storage devices and each supplying the unique identifier as part of the message, the directors employ the unique identifier to identify and ignore any duplicate copies of the message supplied from the data storage devices.
For a fuller understanding of the present invention, reference should be made to the following detailed description taken in conjunction with the accompanying drawings.